Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lib/ogsf: fix possible overflow errors in gvld.c #4637

Merged
merged 1 commit into from
Nov 5, 2024

Conversation

ymdatta
Copy link
Contributor

@ymdatta ymdatta commented Nov 1, 2024

This is similar to #4635.

We were doing (255 << 24) which causes integer overflow and positive number gets converted to negative number. We were then assigning this to an unsigned integer in multiple places, which does conversion in a different way.

For example: If we do unsigned int x = -20, UINT_MAX + 1 - 20 is assigned to x.

I do not think that's what is intended when we do
ktrans = (255 << 24). Fix instances of that, by using an unsigned int literal over int literal.

This issue was found using cppcheck tool.

We were doing `(255 << 24)` which causes integer overflow
and positive number gets converted to negative number. We
were then assigning this to an unsigned integer in multiple
places, which does conversion in a different way.

For example: If we do unsigned int x = -20, `UINT_MAX + 1 - 20`
is assigned to x.

I do not think that's what is intended when we do
`ktrans = (255 << 24)`. Fix instances of that, by using an
unsigned int literal over int literal.

This issue was found using cppcheck tool.

Signed-off-by: Mohan Yelugoti <[email protected]>
@github-actions github-actions bot added C Related code is in C libraries labels Nov 2, 2024
@ymdatta ymdatta changed the title ogsf: fix possible overflow errors in gvld module lib: ogsf: fix possible overflow errors in gvld module Nov 2, 2024
@nilason nilason changed the title lib: ogsf: fix possible overflow errors in gvld module lib/ogsf: fix possible overflow errors in gvld.c Nov 5, 2024
@nilason nilason added this to the 8.5.0 milestone Nov 5, 2024
@petrasovaa petrasovaa merged commit c1d8557 into OSGeo:main Nov 5, 2024
27 of 28 checks passed
@a0x8o a0x8o mentioned this pull request Nov 6, 2024
a0x8o pushed a commit to a0x8o/grass that referenced this pull request Nov 11, 2024
ogsf: fix possible overflow errors in gvld module

We were doing `(255 << 24)` which causes integer overflow
and positive number gets converted to negative number. We
were then assigning this to an unsigned integer in multiple
places, which does conversion in a different way.

For example: If we do unsigned int x = -20, `UINT_MAX + 1 - 20`
is assigned to x.

I do not think that's what is intended when we do
`ktrans = (255 << 24)`. Fix instances of that, by using an
unsigned int literal over int literal.

This issue was found using cppcheck tool.

Signed-off-by: Mohan Yelugoti <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C Related code is in C libraries
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants